package main

import (
	"fmt"
	"math/rand"
)

// 2、随机生成20以内的20个非0正整数，打印出来。对生成的数值，第单数个(不是索引)累加求和，第偶数个累乘求积。打印结果

func question2() {
	// 生成20个20以内的非零正整数
	numbers := generateRandomNumbers(20)
	fmt.Println()
	// 打印生成的数值
	fmt.Println("2-0、生成的数值:", numbers)
	fmt.Println()
	// 对奇数位置的数值进行累加求和，偶数位置进行累乘求积
	sum, product := calculateSumAndProduct(numbers)

	// 打印结果
	fmt.Println("2-1、第奇数个位置的数值累加求和:", sum)
	fmt.Println()
	fmt.Println("2-2、第偶数个位置的数值累乘求积:", product)
	fmt.Println()
	fmt.Println("----------------------------------------------------------------------")
	fmt.Println()
}

// 生成20个20以内的非零正整数
func generateRandomNumbers(count int) []int {
	var numbers []int
	for i := 0; i < count; i++ {
		// 生成1到20的随机数，注意这里加1是为了确保生成的数值在1到20范围内
		number := rand.Intn(20) + 1
		numbers = append(numbers, number)
	}
	return numbers
}

// 对奇数位置的数值进行累加求和，偶数位置进行累乘求积
func calculateSumAndProduct(numbers []int) (int, int) {
	sum := 0
	product := 1
	for i := 0; i < len(numbers); i++ {
		if i%2 == 0 {
			// 对奇数位置进行累加求和
			sum += numbers[i]
		} else {
			// 对偶数位置进行累乘求积
			product *= numbers[i]
		}
	}
	return sum, product
}
